package com.solo.eggsolo.mapper;

import java.util.List;


import com.solo.eggsolo.common.bean.Pager;

/**
 * 数据库Mapper通用CRUD操作方法封装，使用泛型编程适用于多个数据表（数据类型）
 * 
 * @author Yu
 *
 * @param <T>
 */
public interface BaseMapper<T> {

	/**
	 * 根据主键查询数据
	 * 
	 * @param Id
	 * @return
	 */
	T findById(Integer Id);

	/**
	 * 
	 * 使用泛型定义的通用带条件分页查询方法,参数为null时查询所有数据
	 * 
	 * @param pager
	 * @return
	 */
	List<T> list(Pager<T> pager);

	/**
	 * 
	 * 使用泛型定义的通用带条件记录数方法,参数为null时统计所有数据
	 * 
	 * @param pager
	 * @return
	 */
	Integer count(Pager<T> pager);

	/**
	 * 使用泛型定义的通用新增操作方法
	 * 
	 * @param object
	 * @return
	 */
	boolean add(T object);

	/**
	 * 使用泛型定义的通用修改操作方法
	 * 
	 * @param object
	 * @return
	 */
	boolean edit(T object);

	/**
	 * 使用泛型定义的通用批量删除操作方法
	 * 
	 * @param ids
	 * @return
	 */
	boolean deleteByIds(List<T> ids);
}
